package com.ruoyi.xp.order.mapper;

import java.util.List;
import com.ruoyi.xp.order.domain.Order;
import org.apache.ibatis.annotations.Param;

/**
 * 虾皮订单Mapper接口
 * 
 * @author chdx
 * @date 2022-12-04
 */
public interface OrderMapper 
{
    /**
     * 查询虾皮订单
     * 
     * @param orderId 虾皮订单主键
     * @return 虾皮订单
     */
    public Order selectOrderByOrderId(Long orderId);

    /**
     * 查询虾皮订单列表
     * 
     * @param order 虾皮订单
     * @return 虾皮订单集合
     */
    public List<Order> selectOrderList(Order order);

    /**
     * 新增虾皮订单
     * 
     * @param order 虾皮订单
     * @return 结果
     */
    public int insertOrder(Order order);

    /**
     * 修改虾皮订单
     * 
     * @param order 虾皮订单
     * @return 结果
     */
    public int updateOrder(Order order);

    /**
     * 删除虾皮订单
     * 
     * @param orderId 虾皮订单主键
     * @return 结果
     */
    public int deleteOrderByOrderId(Long orderId);

    /**
     * 批量删除虾皮订单
     * 
     * @param orderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteOrderByOrderIds(String[] orderIds);

    /**
     * 查询订单没有商品信息
     *
     * @return 订单信息
     */
    public List<Order> selectOrderHaveNoItem();

    /**
     * 查询仓库待处理订单
     *
     * @param warehouseOrderStatusList
     * @param warehouseProcessStatus
     * @return
     */
    public List<Order> selectWarehouseInitOrder(@Param("warehouseOrderStatusList") List<String> warehouseOrderStatusList,
                                                @Param("warehouseProcessStatus") String warehouseProcessStatus);

    /**
     * 查询仓库待处理中订单
     *
     * @param warehouseOrderStatus
     * @param warehouseProcessStatus
     * @return
     */
    public List<Order> selectWarehouseWaitProcessOrder(@Param("warehouseOrderStatus") String warehouseOrderStatus,
                                                       @Param("warehouseProcessStatus") String warehouseProcessStatus);


    /**
     * 按照订单状态查询订单
     *
     * @param orderStatusList
     * @return
     */
    public List<Order> selectOrderByOrderStatus(@Param("orderStatusList") List<String> orderStatusList);

    /**
     * 查询未有运费的订单
     *
     * @return
     */
    public List<Order> selectHaveNoShippingFeeOrder();
}
